package service.sub;

import dto.ActValidRespBody;
import dto.CurrStateRespBody;
import dto.ReqDefRequest;
import dto.ResponseBean;

import java.util.Map;

public interface FlowService {
    ResponseBean<?> newRequest(ReqDefRequest request);

    ResponseBean<CurrStateRespBody> getCurrentState(String externalID);

    ResponseBean<ActValidRespBody> checkActionRequest(String externalID, String requestID, String actionID);

    ResponseBean<CurrStateRespBody> reportActionCompleted(String blockerExternalID, String requestID,
                                                         String requestActionID, Map<String, String> updatedRequestData);

    ResponseBean<Map<String, String>> getRequestData(String requestID);
}
